AWS Amplify 公式ドキュメントの修正リクエストを送信し取り込まれたので、リポジトリの構造や修正送信の流れなどを紹介します
いわさです。
最近 AWS Amplify をよく検証しています。
以下の記事を検証した際に公式ドキュメントのサンプルコードが誤っていることに気が付きました。
EventBridge による Lambda 関数をスケジュール実行する機能なのですが、EventBridgeHandler を使う際にパラメータが足りずにバックエンドのデプロイに失敗する問題がありました。
その問題自体はただしそうな実装で回避出来たのですが、せっかくなのでドキュメントにフィードバックと簡単な修正だったのでプルリクエストを送ってみることにしました。
Gen1 と Gen2 などメジャーバージョンで分かれていたり、あるいは React や Swift など様々なプラットフォームごとに記述内容が違っていたりと最初ドキュメントリポジトリを見ると少し混乱する方もいるかもしれないのでドキュメントリポジトリの概要を紹介しつつ、修正依頼を送る流れを整理しておきます。
GitHub のプルリクエストを使って送信することになります。git の使い方や GitHub でのプルリクエスト送信方法については触れないのでご承知おきください。
Amplify ドキュメントは GitHub 上のリポジトリで管理されている
まず、Amplify のドキュメントは GitHub のリポジトリで管理されています。
AWS Amplify 内にはパッケージなど含めて様々なリポジトリが存在しているのですが、その中の aws-amplify/docs の main ブランチがドキュメントのプロダクション環境と同一の内容のリポジトリ・ブランチです。
Amplify ドキュメントの特徴として、今は複数のメジャーバージョン(Gen1 と Gen2)がサポートされているという点と、多様なプラットフォームをサポートしているという点があります。
これらのターゲットに応じた情報の表示を単一のドキュメントサイトで実現しています。
プラットフォームに関してはサイドバーにフレームワークや言語を切り替えるドロップダウンが配置されており、こちらを切り替えることでコンテンツも切り替わります。
ドキュメントコンテンツはコードから Next.js を使って生成されており、プラットフォーム固有のコンテンツについては次のようにInlineFilter
を使って切り替える仕組みとなっています。
メジャーバージョン Gen1 と Gen2 の切り替えについてはページヘッダーコントロール内のドロップダウンで切り替えます。
こちらについてはフォルダ構造が異なっています。
今のメインである Gen2 については/src/pages/[platform]
を、Gen1 については/src/pages/gen1/[platform]
にコードが格納されています。
上記も一部含んでいますが、その他のガイドについてもリポジトリの README.MD に記載されているので事前に目を通しておくと良いです。
修正してみよう
では修正リクエストを送ってみましょう。
今回修正したいページは以下です。
まずはコードを特定する必要があります。
以下になるのですがページ URL とコンテンツの階層は同じなので、前述の Gen2 の開始はどこかなどを把握しておけば特定は簡単だと思います。見つからなかったらリポジトリ内で検索しましょう。
リポジトリをフォークしてコミットを作成しました。
こんな感じです。
後は main ブランチに対してのプルリクエストを作成するだけです。
PR テンプレートに従って記述する必要がありますが、プルリクエストの説明や Issue をリンクさせたくらいで必要最低限な内容だったと思います。
参考までに実際に私が作成したプルリクエストは以下です。
モデレーターの方が Issue のリンクなど親切に色々と対応いただきました。
2 名以上のレビューアに Approve されるとマージされてすぐにプロダクション環境に反映されていました。
Issue も自動でクローズされます。
Issue 作成からだいたい 1 日強くらいでプロダクション環境に反映されました。
さいごに
本日は Amplify ドキュメントの修正リクエストを送信し取り込まれたので、リポジトリの構造や修正の送信方法の流れなどを紹介しました。
注意点としては Amplify 固有のプラットフォームやメジャーバージョンの切り替えに関するフォルダ構想やインラインフィルターについてだけ知っておくくらいでしょうか。
私が確認した限りでは特に新機能などを試しているとドキュメント誤りを見つけることが多いのでドンドン修正リクエストを送りたいなと思いました。